草庐IT

Ruby File 类和方法

全部标签

ruby - pretty-print 哈希的最佳方法

我有一个包含嵌套数组和散列的大散列。我只想将其打印出来,以便用户“可读”。我希望它有点像to_yaml-可读性很强-但看起来还是太科技了。最终需要读取这些数据block的将是最终用户,因此需要将它们格式化干净。有什么建议吗? 最佳答案 require'pp'ppmy_hash使用pp如果您需要内置解决方案并且只想要合理的换行符。使用awesome_print如果你可以安装一个gem。(根据您的用户,您可能希望使用index:false选项来关闭显示数组索引。) 关于ruby-pretty

ruby - 我可以在不包含 Ruby 模块的情况下调用实例方法吗?

背景:我有一个模块声明了一些实例方法moduleUsefulThingsdefget_file;...defdelete_file;...defformat_text(x);...end我想从一个类中调用其中一些方法。你通常如何在ruby​​中这样做:classUsefulWorkerincludeUsefulThingsdefdo_workformat_text("abc")...endend问题includeUsefulThings从UsefulThings引入所有方法。在这种情况下,我只需要format_text并且明确不需要get_file和delete_file。我可以看到几

ruby - 有没有更好的方法来检查 Ruby 中字符串的 Nil 或 Length == 0?

在Ruby中,是否有比以下方法更好的方法来检查字符串是否为nil或长度为0?if!my_string||my_string.length==0returntrueelsereturnfalseend在C#中有方便的string.IsNullOrEmpty(myString)有什么类似于Ruby的吗? 最佳答案 当我不担心性能时,我会经常使用这个:ifmy_string.to_s==''#It'sniloremptyend当然有各种变化...ifmy_string.to_s.strip.length==0#It'snil,empty,

ruby - 从字符串中删除第一个字符的最简单方法是什么?

例子:[12,23,987,43删除“[”的最快、最有效的方法是什么?可能使用chop()但对于第一个字符? 最佳答案 与上面Pablo的回答类似,但更清洁:str[1..-1]将返回从1到最后一个字符的数组。'HelloWorld'[1..-1]=>"elloWorld" 关于ruby-从字符串中删除第一个字符的最简单方法是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/

ruby-on-rails - 在 Ruby on Rails 中覆盖 setter 方法的正确方法是什么?

我正在使用RubyonRails3.2.2,我想知道以下是否是覆盖我的类属性的setter方法的“正确”/“正确”/“确定”方法。attr_accessible:attribute_namedefattribute_name=(value)...#Somecustomoperation.self[:attribute_name]=valueend上面的代码似乎按预期工作。但是,我想知道,通过使用上述代码,将来我是否会遇到问题,或者至少,RubyonRails“应该”/“可能发生”什么问题。如果这不是覆盖setter方法的正确方法,那么正确的方法是什么?注意:如果我使用代码attr_ac

ruby - 在不创建新字符串的情况下在 Ruby 中修剪字符串的规范方法是什么?

这就是我现在所拥有的——对于它正在做的工作来说看起来太冗长了。@title=tokens[Title].strip!||tokens[Title]if!tokens[Title].nil?假设tokens是一个CSV行拆分得到的数组。现在像strip一样的功能!咀嚼!等。如果字符串未被修改,则全部返回nil"abc".strip!#=>nil"abc".strip!#=>"abc"如果它包含额外的前导或尾随空格而不创建副本,Ruby怎么说修剪它?如果我想做tokens[Title].chomp!.strip!会变得更丑 最佳答案 我

ruby - 获取当前正在执行的方法的名称

$0是顶级Ruby程序的变量,但是当前方法有吗? 最佳答案 比我的第一个答案更好的是你可以使用__method__:classFoodeftest_method__method__endend这会返回一个符号——例如,:test_method。要将方法名称作为字符串返回,请改为调用__method__.to_s。注意:这需要Ruby1.8.7。 关于ruby-获取当前正在执行的方法的名称,我们在StackOverflow上找到一个类似的问题: https://

ruby - 在 Ruby 中使用范围填充数组的正确方法

我正在阅读一本书,其中给出了使用“to_a”方法将范围转换为等效数组的示例当我在irb中运行代码时,我收到以下警告warning:default`to_a'willbeobsolete使用to_a的正确替代方法是什么?有其他方法可以用范围填充数组吗? 最佳答案 您可以使用splat创建具有范围的数组,>>a=*(1..10)=>[1,2,3,4,5,6,7,8,9,10]使用KernelArray方法,Array(1..10)=>[1,2,3,4,5,6,7,8,9,10]或使用to_a(1..10).to_a=>[1,2,3,4,

arrays - 将元素推到数组开头的最简单方法是什么?

我想不出一种单行方式来做到这一点。有办法吗? 最佳答案 使用unshift怎么样?方法?ary.unshift(obj,...)→aryPrependsobjectstothefrontofself,movingotherelementsupwards.并在使用中:irb>>a=[0,1,2]=>[0,1,2]irb>>a.unshift('x')=>["x",0,1,2]irb>>a.inspect=>"["x",0,1,2]" 关于arrays-将元素推到数组开头的最简单方法是什么?

ruby - 方法名称末尾的问号在 Ruby 中是什么意思?

Ruby中问号运算符的用途是什么?有时它看起来像这样:assert!product.valid?有时它在if结构中。 最佳答案 这是一种代码风格约定;它表示方法返回bool值(真或假)或对象以指示真值(或“真实”值)。问号是方法名末尾的有效字符。https://docs.ruby-lang.org/en/2.0.0/syntax/methods_rdoc.html#label-Method+Names 关于ruby-方法名称末尾的问号在Ruby中是什么意思?,我们在StackOverfl